package com.olap.starter.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author WBG
 * @since 2022-08-31
 */
@Data
public class TableConfigColumn implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 序号
     */
    private Integer sort;

    /**
     * 父ID
     */
    private Long parentId;

    /**
     * 表字段
     */
    private String tableField;

    /**
     * 定义字段
     */
    private String field;

    /**
     * 标题
     */
    private String title;

    /**
     * 宽度
     */
    private Integer width;

    /**
     * 数据字典
     */
    private String dictCode;

    /**
     * 查询类型
     */
    private String selectType;

    /**
     * 搜索框顺序 默认1
     */
    private int searchSort = 1;

    /**
     * 列配置权限
     */
    private String columnAuth;

    /**
     * 查询控件
     */
    private String selectDom;

    /**
     * fixed 1:left;2 right
     */
    private String fixed;

    /**
     * align 0:center;1:left;2:right
     */
    private String align;

    /**
     * 自定义方法
     */
    private String formatter;

    /**
     * 显示 0:不显示；1:显示
     */
    private String visible;

    /**
     * 新增 0:不显示；1:显示
     */
    private String addDisplay;

    /**
     * 编辑 0:不显示；1:显示
     */
    private String editDisplay;

    /**
     * 排序 0:不显示；1:显示
     */
    private String sortable;

    /**
     * 搜索 0:不显示；1:显示
     */
    private String search;

    /**
     * 其他属性
     */
    private String otherProp;

    /**
     * 版本
     */
    private Integer version;
    /**
     * uuid
     */
    private Long uuid;

    /**
     * 模板t*
     */
    private String theme;
    private String asName;
    private String label;
    /**
     * 拖动列宽
     */
    private String resizable;
    @TableLogic
    /**
     * 标识符
     */
    private Integer deleted;
    /**
     * 是否合并行（值相等）
     */
    private String mergeFlag;

    /**
     * 分组表头id
     */
    private String parentFieldId;
    /**
     * 子字段
     */
    @TableField(exist = false)
    List<TableConfigColumn> children;

    @Override
    public String toString() {
        return "TableConfigColumn{" +
                "field='" + field + '\'' +
                ", title='" + title + '\'' +
                ", parentFieldId='" + parentFieldId + '\'' +
                '}';
    }
}
